home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 127 / PC Guia 127.iso / Software / Produtividade / OpenOffice.org 2.0.1 / openofficeorg1.cab / memusage.bsh < prev    next >
Text File  |  2005-01-27  |  4KB  |  121 lines

  1. import com.sun.star.uno.UnoRuntime;
  2. import com.sun.star.uno.AnyConverter;
  3. import com.sun.star.uno.Type;
  4. import com.sun.star.lang.XComponent;
  5. import com.sun.star.lang.XMultiServiceFactory;
  6. import com.sun.star.frame.XComponentLoader;
  7. import com.sun.star.document.XEmbeddedObjectSupplier;
  8. import com.sun.star.awt.ActionEvent;
  9. import com.sun.star.awt.Rectangle;
  10. import com.sun.star.beans.XPropertySet;
  11. import com.sun.star.beans.PropertyValue;
  12.  
  13. import com.sun.star.container.*;
  14. import com.sun.star.chart.*;
  15. import com.sun.star.table.*;
  16. import com.sun.star.sheet.*;
  17.  
  18. import com.sun.star.script.provider.XScriptContext;
  19.  
  20. createSpreadsheet()
  21. {
  22.     loader = (XComponentLoader)
  23.         UnoRuntime.queryInterface(
  24.             XComponentLoader.class, XSCRIPTCONTEXT.getDesktop());
  25.  
  26.     comp = loader.loadComponentFromURL(
  27.         "private:factory/scalc", "_blank", 4, new PropertyValue[0]);
  28.  
  29.     doc = (XSpreadsheetDocument)
  30.         UnoRuntime.queryInterface(XSpreadsheetDocument.class, comp);
  31.  
  32.     index = (XIndexAccess)
  33.         UnoRuntime.queryInterface(XIndexAccess.class, doc.getSheets());
  34.  
  35.     sheet = (XSpreadsheet) AnyConverter.toObject(
  36.         new Type(com.sun.star.sheet.XSpreadsheet.class), index.getByIndex(0));
  37.  
  38.     return sheet;
  39. }
  40.  
  41. addData(sheet, date, total, free)
  42. {
  43.     // set the labels
  44.     sheet.getCellByPosition(0, 0).setFormula("Used");
  45.     sheet.getCellByPosition(0, 1).setFormula("Free");
  46.     sheet.getCellByPosition(0, 2).setFormula("Total");
  47.  
  48.     // set the values in the cells
  49.     sheet.getCellByPosition(1, 0).setValue(total - free);
  50.     sheet.getCellByPosition(1, 1).setValue(free);
  51.     sheet.getCellByPosition(1, 2).setValue(total);
  52. }
  53.  
  54. addChart(sheet)
  55. {
  56.     rect = new Rectangle();
  57.     rect.X = 500;
  58.     rect.Y = 3000;
  59.     rect.Width = 10000;
  60.     rect.Height = 8000;
  61.  
  62.     range = (XCellRange) UnoRuntime.queryInterface(XCellRange.class, sheet);
  63.     myRange = range.getCellRangeByName("A1:B2");
  64.  
  65.     rangeAddr = (XCellRangeAddressable)
  66.         UnoRuntime.queryInterface(XCellRangeAddressable.class, myRange);
  67.  
  68.     myAddr = rangeAddr.getRangeAddress();
  69.  
  70.     CellRangeAddress[] addr = new CellRangeAddress[1];
  71.     addr[0] = myAddr;
  72.  
  73.     supp = (XTableChartsSupplier)
  74.         UnoRuntime.queryInterface( XTableChartsSupplier.class, sheet);
  75.     charts = supp.getCharts();
  76.     charts.addNewByName("Example", rect, addr, false, true);
  77.  
  78.     try { Thread.sleep(3000); } catch (java.lang.InterruptedException e) { }
  79.  
  80.     // get the diagram and Change some of the properties
  81.     chartsAccess = (XNameAccess)
  82.         UnoRuntime.queryInterface( XNameAccess.class, charts);
  83.  
  84.     tchart = (XTableChart)
  85.         UnoRuntime.queryInterface(
  86.             XTableChart.class, chartsAccess.getByName("Example"));
  87.  
  88.     eos = (XEmbeddedObjectSupplier)
  89.         UnoRuntime.queryInterface( XEmbeddedObjectSupplier.class, tchart );
  90.     xifc = eos.getEmbeddedObject();
  91.  
  92.     xChart = (XChartDocument)
  93.         UnoRuntime.queryInterface(XChartDocument.class, xifc);
  94.  
  95.     xDocMSF = (XMultiServiceFactory)
  96.         UnoRuntime.queryInterface(XMultiServiceFactory.class, xChart);
  97.  
  98.     diagObject = xDocMSF.createInstance("com.sun.star.chart.PieDiagram");
  99.     xDiagram = (XDiagram)
  100.         UnoRuntime.queryInterface(XDiagram.class, diagObject);
  101.     xChart.setDiagram(xDiagram);
  102.  
  103.     propset = (XPropertySet)
  104.         UnoRuntime.queryInterface( XPropertySet.class, xChart.getTitle() );
  105.     propset.setPropertyValue("String", "JVM Memory Usage");
  106. }
  107.  
  108. runtime = Runtime.getRuntime();
  109. generator = new Random();
  110. date = new Date();
  111.  
  112. // allocate a random number of bytes so that the data changes
  113. len = (int)(generator.nextFloat() * runtime.freeMemory() / 5);
  114. bytes = new byte[len];
  115.  
  116. sheet = createSpreadsheet();
  117. addData(sheet, date.toString(), runtime.totalMemory(), runtime.freeMemory());
  118. addChart(sheet);
  119.  
  120. return 0;
  121.